﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Windows;
using System.Windows.Controls;
using System.Windows.Data;
using System.Windows.Documents;
using System.Windows.Input;
using System.Windows.Media;
using System.Windows.Media.Imaging;
using System.Windows.Navigation;
using System.Windows.Shapes;
using ChoDiaOc_HK_WPF.Controls;
using ChoDiaOc_HK_WPF.Models;

namespace ChoDiaOc_HK_WPF.Views.TiepNhanDangKy {
    /// <summary>
    /// Interaction logic for LapPhieuThu.xaml
    /// </summary>
    public partial class LapPhieuThu : UserControl {

        private PHIEUDANGKY phieuDangKySource;

        public PHIEUDANGKY PhieuDangKySource {
            get { return phieuDangKySource; }
            set { phieuDangKySource = value; }
        }

        private NOIDUNGQC noiDungQCSource;

        public NOIDUNGQC NoiDungQCSource {
            get { return noiDungQCSource; }
            set { noiDungQCSource = value; }
        }

        public LapPhieuThu() {
            InitializeComponent();
            
            phieuDangKySource = (PHIEUDANGKY)FindResource("phieuDangKySource");
            noiDungQCSource = (NOIDUNGQC)FindResource("noiDungQCSource");

            TiepNhanDangKyController.GetInstance().PhieuDangKySource = phieuDangKySource;
            noiDungQCSource.ThongTinDiaOc = TiepNhanDangKyController.GetInstance().NoiDungQCSource.ThongTinDiaOc;

            phieuDangKySource.TuNgay = DateTime.Now;
            phieuDangKySource.DenNgay = phieuDangKySource.TuNgay.AddDays(30);

            thoiGianHenChupAnhDatePicker.IsEnabled = false;
            txtCoChupAnh.Visibility = Visibility.Visible;

            thoiGianHenChupAnhDatePicker.SelectedDate = DateTime.Now;

            if (TiepNhanDangKyController.GetInstance().IsQCBao && !TiepNhanDangKyController.GetInstance().QuangCaoBaoSource.CoHinhAnh) {
                thoiGianHenChupAnhDatePicker.IsEnabled = false;
                txtCoChupAnh.Visibility = Visibility.Visible;
            }

            if (TiepNhanDangKyController.GetInstance().IsQCBao && TiepNhanDangKyController.GetInstance().QuangCaoBaoSource.CoHinhAnh) {
                thoiGianHenChupAnhDatePicker.IsEnabled = true;
                txtCoChupAnh.Visibility = Visibility.Collapsed;
            }

            phieuDangKySource.MaPhieuDangKy = TiepNhanDangKyController.GetInstance().GenerateMaPHIEUDANGKY();

        }

        private void UserControl_Loaded(object sender, RoutedEventArgs e) {

        }

        private bool isValidate = false;

        public bool IsValidate {
            get { return isValidate; }
            set { isValidate = value; }
        }

        private void Validate() {

            List<String> list = txtNoiDungQC.Text.Split(' ').ToList();

            if (list.Count > DatabaseWrapper.GetInstance().GetThamSoSoTuMoTaToiDa()) {
                isValidate = false;
                return;
            }

            if (TiepNhanDangKyController.GetInstance().QuangCaoBaoSource.CoHinhAnh &&
                (thoiGianHenChupAnhDatePicker.SelectedDate < phieuDangKySource.TuNgay || thoiGianHenChupAnhDatePicker.SelectedDate >= phieuDangKySource.DenNgay)) {

                isValidate = false;
                return;
            }

            if (String.IsNullOrWhiteSpace(noiDungQCSource.ThongTinDiaOc)) {
                isValidate = false;
                return;
            }

            isValidate = true;
        }

        private void btnGhiNhanDichVu_Click(object sender, RoutedEventArgs e) {
            Validate();
            if (isValidate == false) {
                MessageBox.Show("Thông tin không hợp lệ!", "Cảnh báo", MessageBoxButton.OK, MessageBoxImage.Warning, MessageBoxResult.OK, MessageBoxOptions.None);
            } else {
                if (TiepNhanDangKyController.GetInstance().GhiNhanPhieuDangKy()) {
                    MessageBox.Show("Đăng ký đã được ghi nhận.", "Thông báo", MessageBoxButton.OK, MessageBoxImage.Information, MessageBoxResult.OK, MessageBoxOptions.None);
                    App.ManHinhTiepNhanDangKy.btnNhapTiep_Click(null, null);
                } else {
                    MessageBox.Show("Đăng ký không thành công, hãy kiểm tra lại!", "Thông báo", MessageBoxButton.OK, MessageBoxImage.Asterisk, MessageBoxResult.OK, MessageBoxOptions.None);
                }
            }
        }

        private void btnInBienLai_Click(object sender, RoutedEventArgs e) {
            MessageBox.Show("Hiện cửa sổ xem bản in biên lại thu tiền khách hàng (Hậu làm).");
        }

        private void btnInPhieuThu_Click(object sender, RoutedEventArgs e) {
            MessageBox.Show("Hiện cửa sổ xem bản in phiếu thu khách hàng (Hậu làm).");
        }

        private void btnThuTien_Click(object sender, RoutedEventArgs e) {
            MessageBox.Show("Hiện thông báo yêu cầu nhân viên thu tiền khách hàng (Làm sau).");
        }
    }
}
